﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows;
using System.ComponentModel;
using produccion.clases;


namespace produccion.vistamodelo
{
   public class VMbuscarPedido:ViewModelBase
    {

        #region 
        public VMbuscarPedido(CLSMAECLIP cliente) {

            CLSENCPPCP pedido = new CLSENCPPCP { CODCLI_EPC = cliente.CODCLI_CLI };
            List<CLSENCPPCP> pedidos= pedido.listarPedidos();
            gridBuscar = new VMgridBuscar((from cust in pedidos
                                                 select new VMlistaGenerica
                                                 {
                                                     strColumna1 = cust.NROPED_EPC.ToString(),
                                                     strColumna2 =  cust.FECPED_EPC.ToShortDateString(),
                                                     strColumna3=cust.FECENT_EPC.ToShortDateString(),
                                                     strColumna4 = cust.detallePedido.CANPED_DPC.ToString(),
                                                     strColumna5 = cust.detallePedido.CANENT_DPC.ToString(),
                                                     strColumna6=cust.cliente.NOMCLI_CLI.ToString()
                                                 }).ToList());
            gridBuscar.columna1.strNombre = "Número Pedido";
            gridBuscar.columna2.strNombre = "Fecha De Pedido";
            gridBuscar.columna3.strNombre = "Fecha De Entrega";
            gridBuscar.columna4.strNombre = "Cantidad Pedida";
            gridBuscar.columna5.strNombre = "Cantidad Entregada";
            gridBuscar.columna6.strNombre = "Nombre De Cliente";
            gridBuscar.strTitulo = " Buscar Pedido";
            gridBuscar.PropertyChanged += OnGbPropertyChanged;
         
        }

        public VMbuscarPedido()
        {
           

        }
        #endregion

        #region public interfaces

        RelayCommand _cmdAceptar;
        public ICommand cmdAceptar
        {
            get
            {

                if (_cmdAceptar == null)
                {
                    _cmdAceptar = new RelayCommand(r => Aceptar());
                }
                return _cmdAceptar;
            }
        }

        RelayCommand _cmdSalir;
        public ICommand cmdSalir
        {
            get
            {

                if (_cmdSalir == null)
                {
                    _cmdSalir = new RelayCommand(r => Salir());
                }
                return _cmdSalir;
            }
        }

        private bool _IsOpen = false;
        public bool IsOpen
        {
            get { return _IsOpen; }
            set
            {
                _IsOpen = value;
                base.OnPropertyChanged("IsOpen");
            }
        }

        private VMgridBuscar _gridBuscar;
        public VMgridBuscar gridBuscar
        {
            get { return _gridBuscar; }
            set
            {
                _gridBuscar = value;
                base.OnPropertyChanged("gridBuscar");
            }
        }

        #endregion

        #region methods

        void OnGbPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "Click") {
                Aceptar();
            }
        }

        public void Aceptar()
        {
            try
            {
                IsOpen = false;
                gridBuscar.selLista = null;
                gridBuscar.quitarFiltros();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        public void Salir()
        {
            try
            {
                gridBuscar.selLista = null;
                IsOpen = false;
                gridBuscar.quitarFiltros();
            }
            catch (Exception ex) { throw ex; }
        }
        #endregion

    }
}
